package plataforma.cih.campos;

import java.util.ArrayList;
import java.util.List;

import org.zkoss.zul.Space;
import org.zkoss.zul.Span;

public class CampoPesquisaCheckBox extends Span {

	public static final String CHAVE_ATRIBUTO = "valor";
	List<CampoCheckBox> campos = new ArrayList<CampoCheckBox>();

	public void adicionarParametro(String descricao, Object value) {
		CampoCheckBox novoCampo = new CampoCheckBox();
		novoCampo.setLabel(descricao);
		novoCampo.setAttribute(CHAVE_ATRIBUTO, value);

		if (!campos.isEmpty())
			this.appendChild(new Space());
		this.appendChild(novoCampo);
		campos.add(novoCampo);

	}

	public boolean isValorSelecionado(Object value) {

		for (CampoCheckBox campo : campos) {

			Object valor = campo.getAttribute(CHAVE_ATRIBUTO);

			if (valor.equals(value))
				return true;

		}

		return false;
	}

	public void selecionar(Object value) {
		for (CampoCheckBox campo : campos) {

			Object valor = campo.getAttribute(CHAVE_ATRIBUTO);

			if (valor.equals(value))
				campo.setChecked(true);

		}

	}

	public List<Object> getValoresSelecionados() {
		
		List<Object> valoresSelecionados = new ArrayList<Object>();
		
		for (CampoCheckBox campo : campos) {

			Object valor = campo.getAttribute(CHAVE_ATRIBUTO);

			if (campo.isChecked())
				valoresSelecionados.add(valor);

		}
		
		return valoresSelecionados;
	}

}
